home *** CD-ROM | disk | FTP | other *** search
/ Die Speccy' 97 / Die Speccy' 97.iso / amiga_system / the_aminet / comm / bbs / amms20d.lha / amms / mbbatch / com / Fastnet_Server < prev    next >
Text File  |  1995-08-16  |  7KB  |  232 lines

  1. ;
  2. ;    *********************************************************
  3. ;    *                                                       *
  4. ;    *             NETCALL SERVER-BATCHDATEI                 *
  5. ;    *                                                       *
  6. ;    *********************************************************
  7. ;
  8. ;    Autor: Markus Marquardt & Michael Scheler
  9. ;    $VER: 4.02 / 16.08.1995
  10. ;
  11. ;    Beschreibung :
  12. ;    Server-Datei fuer das Fastnet-Protokoll. Die gesendeten und
  13. ;    empfangenen Daten werden im Directory MBMSG:POINT/<Portname>/
  14. ;    temporaer gespeichert.
  15. ;    Stehen im Directory MBNET:EXPORT/ die Dateien <USERNAME>@FA.LHA
  16. ;    und <USERNAME>@FA.MSGNR, so werden nicht die neusten Nachrichten und
  17. ;    Files aktuell exportiert und gepackt, sondern diese vorgepackten
  18. ;    Daten benutzt.
  19. ;
  20. ;    Das Script sollte so eingebunden werden, dass es ueber Level und
  21. ;    Flags auf die folgende Befehle zugreifen kann :
  22. ;
  23. ;    ADD EVENT
  24. ;    BREAK OFF
  25. ;    CHECK FILE
  26. ;    DISK DOWNLOAD
  27. ;    DISK UPLOAD
  28. ;    ECHO
  29. ;    EXTERN
  30. ;    FASTNET GETFILE
  31. ;    FASTNET MAKEFILE
  32. ;    HANGUP
  33. ;    IF
  34. ;    LOGOUT            <- Option /FAST muss unterstuetzt werden !
  35. ;    ON ERROR
  36. ;    ON HANGUP
  37. ;    WAIT
  38. ;    WAITSTRING
  39. ;
  40. ;    Folgende Amiga-Dos-Befehle werden benutzt :
  41. ;
  42. ;    COPY
  43. ;    DELETE
  44. ;
  45. ;    Einrichtung eines Netcalls fuer eine Netzbox (Node) :
  46. ;    USERNAME : Name der anzurufenen Node
  47. ;    STRASSE  : @NETCALL
  48. ;
  49. ;    Einrichtung eines Netcalls fuer eine Netzbox (Node) des Hauptnetztes,
  50. ;    die aber nicht der eigentliche Server im Hauptnetz ist, sondern nur
  51. ;    fuer das Importieren eines weiteres Unternetzes dient.
  52. ;    USERNAME : Name der anzurufenen Node
  53. ;    STRASSE  : @LOCALNET
  54. ;
  55. ;    Einrichtung eines LocalGates fuer die Einbindung eines anderen
  56. ;    lokalen Netzwerks :
  57. ;    USERNAME : Name der anzurufenen Node
  58. ;    VORNAME  : Gatename im Fastnet
  59. ;    STRASSE  : @LOCALGATE
  60. ;
  61. ;    Einrichtung eines Gates fuer die Einbindung eines anderen 
  62. ;    globalen Netzwerks :
  63. ;    USERNAME : Name der anzurufenen Node
  64. ;    VORNAME  : Gatename im Fastnet
  65. ;    NACHNAME : Gatename im Fremd-Netz
  66. ;    STRASSE  : @GATE
  67. ;
  68. ;    Konstanten :
  69. ;
  70. DEBUG     = "ON"                    ; DEBUG-MODUS AKTIVIEREN
  71. DEBUGDIR = "AMMS:NETDEBUG/"            ; Debug-Directory
  72. IMPORTPORT= "IMPORT"                ; Portname fuer Import
  73. IMPORTDIR= "mbnet:Import/"            ; Import-Directory
  74. TMPDIR   = "mbmsg:point/'{port}'/"        ; Dir fuer Tmp-Files
  75. EXPORTDIR= "mbnet:export/"            ; Export-Directory
  76. MAXKBYT     = 2000                    ; Max. Laenge des Msg-Files
  77. CACHE     = 200                    ; Max. KByte Cache-Ram-Speicher
  78. COPYFILE = "'{NAME}'@FA.lha"            ; Vorgabefile (Pack-Event)
  79. COPYNR     = "'{NAME}'@FA.msgnr"            ; File fuer Msg-Nummern
  80. SENDFILE = "called.lha"                ; Zu sendendes File
  81. RECFILE     = "caller.lha"                ; Empfangenes File
  82. MSGFILE     = "msgs"                ; File fuer Msgs
  83. NRFILE     = "msgnr"                ; File fuer Msg-Nummern
  84. IMPORTFILE= "'IMPORTDIR''{NAME}'@FA'{CALLNR}'.LHA" ; Importfile fuer anderen Port
  85. PACKER     = "lha -IP-1 m ""'TMPDIR''SENDFILE'"" ""'TMPDIR''MSGFILE'"""
  86.                         ; Packen
  87. UNPACKER = "lha -IP-1 x ""'TMPDIR''RECFILE'"" ""'TMPDIR'"" ""'MSGFILE'"""
  88.                         ; Entpacken
  89. LISTFILES = "'IMPORTDIR''{NAME}'@FA#?"        ; Importfile
  90. LISTUPACK = "makedir *""'TMPDIR'%m*"" *n lha -P-1 e *""%s%s*"" *""'TMPDIR'%m/*"" *""~(#?/#?|#?:#?)*"""
  91.  
  92. ;
  93. ;    Abbruchtasten sperren / Bei Fehler und Hangup verzweigen
  94. ;
  95.  
  96. _break off                    ; Kein Break erlauben
  97. _on error END_FAIL                ; Label fuer Fehler
  98. _on hangup END_FAIL                ; Label fuer Hangup
  99.  
  100. ;
  101. ;    Optionen fuer Zusatz-Funktionen erzeugen
  102. ;
  103.  
  104.  GETOPT="/Cache='CACHE'"
  105.  MAKOPT=""
  106. _if {STREET} != "@NETCALL" then _goto NONETCALL
  107.  GETOPT="/Cache='CACHE'"
  108.  MAKOPT=""
  109. _goto ENDOFOPT
  110. NONETCALL:
  111. _if {STREET} != "@LOCALGATE" then _goto NOLOCALGATE
  112.  GETOPT="/Filter=%001111100000000000/Type=2/Cache='CACHE'"
  113.  MAKOPT="/Filter=%0111100000000/Type=2"
  114. _goto ENDOFOPT
  115. NOLOCALGATE:
  116. _if {STREET} != "@GATE" then _goto NOGATE
  117.  GETOPT="/Filter=%001111100000000000/Type=1/Cache='CACHE'"
  118.  MAKOPT="/Filter=%0111100000000/Type=1"
  119. _goto ENDOFOPT
  120. NOGATE:
  121. _if {STREET} != "@LOCALNET" then _goto NOLOCALNET
  122.  GETOPT="/Filter=%101111100000000000/Cache='CACHE'"
  123.  MAKOPT="/Filter=%0111100000000"
  124. _goto ENDOFOPT
  125. NOLOCALNET:
  126. ENDOFOPT:
  127.  
  128. ;
  129. ;    Alte TMP-Files loeschen
  130. ;
  131.  
  132. _if TMPDIR != "" then _extern/q delete "'TMPDIR'#?"
  133. _extern/q rename "'TMPDIR''SENDFILE'" "'TMPDIR''SENDFILE''{CALLNR}'"
  134. _extern/q rename "'TMPDIR''RECFILE'" "'TMPDIR''RECFILE''{CALLNR}'"
  135.  
  136. ;
  137. ;    Wenn Spezial-Port, Daten nur importieren
  138. ;
  139.  
  140. _if IMPORTPORT == {PORT} then _goto SPECIAL     ; Wenn Spezial-Port, verzw.
  141.  
  142. ;
  143. ;    Neue Nachrichten fuer andere Box sammeln & packen
  144. ;
  145.  
  146. _check file "'EXPORTDIR''COPYFILE'" EXPORT        ; Existiert Sendefile ?
  147. _extern/q copy "'EXPORTDIR''COPYFILE'" "'TMPDIR''SENDFILE'" ; Ja, vorgepackte
  148. _extern/q copy "'EXPORTDIR''COPYNR'" "'TMPDIR''NRFILE'"     ; Files benutzen
  149. _goto WAIT_UP                    ; -> Warten auf andere Box
  150.  
  151. EXPORT:
  152. _fastnet makefile'MAKOPT' "'TMPDIR''MSGFILE'" 'MAXKBYT' "'TMPDIR''NRFILE'"
  153. _extern/q 'PACKER'
  154.  
  155. ;
  156. ;    Warten, bis andere Box mit Packen fertig ist ...
  157. ;
  158. WAIT_UP:
  159. _echo "WAITUP WAITUP WAITUP WAITUP WAITUP"
  160. _waitstring "STARTUP" 60 WAIT_UP        ; Timeout = 1 min.
  161.  
  162. ;
  163. ;    Die neuen Nachrichten von der anderen Box empfangen
  164. ;
  165.  
  166. _disk upload "'TMPDIR''RECFILE'"
  167.  
  168. ;
  169. ;    Nachrichten an die anrufende Box schicken
  170. ;
  171.  
  172. _disk download "'TMPDIR''SENDFILE'"
  173.  
  174. ;
  175. ;    Auflegen nach 3 Sekunden
  176. ;
  177.  
  178. _on hangup/ignore
  179. _wait 3
  180. _hangup
  181.  
  182. ;
  183. ;    Gezogene Msgs als gelesen kennzeichnen
  184. ;
  185.  
  186. _fastnet makefile/setnr "'TMPDIR''NRFILE'"
  187.  
  188. ;
  189. ;    Wenn Debug-Modus aktiv, empfangenes Pointfile retten
  190. ;
  191.  
  192. _if DEBUG == "ON" then _extern/q copy "'TMPDIR''RECFILE'" "'DEBUGDIR''{NAME}''{CALLNR}'.LHA"
  193.  
  194. ;
  195. ;    Wenn Port IMPORT existiert, Import-Event starten
  196. ;
  197.  
  198. _check port "'IMPORTPORT'" IMPORT        ; Wenn kein Port, verzw.
  199. _extern/q copy "'TMPDIR''RECFILE'" "'IMPORTFILE'"
  200. _add event/Background "'IMPORTPORT'" 0 3 mbbatch:fastnet_import "'{NAME}'"
  201. _goto END                    ; -> Ende
  202.  
  203. ;
  204. ;    Alle Messages, Files und PMs im Port IMPORT importieren
  205. ;
  206. SPECIAL:
  207. _extern/q list >"t:zc1'{port}'" "'LISTFILES'" lformat "'LISTUPACK' *n delete *"%s%s*""
  208. _extern/q execute "t:zc1'{port}'"
  209. _extern/q list >"t:zc1'{port}'" "'TMPDIR'#?/#?" lformat "fastnet getfile'GETOPT' *"%s%s*""
  210. _extern/q echo >"t:zc2'{port}'"
  211. _extern/q sort "t:zc1'{port}'" to "t:zc2'{port}'"
  212. _disk execute "t:zc2'{port}'"
  213. _extern/q delete "t:zc1'{port}'" "t:zc2'{port}'"
  214. _if TMPDIR != "" then _extern/q delete "'TMPDIR'#?" all ; Disk aufraeumen
  215. _goto END                    ; -> Ende
  216.  
  217. ;
  218. ;    Neu empfangene Nachrichten entpacken und einsortieren
  219. ;
  220. IMPORT:
  221. _extern/q delete "'TMPDIR''SENDFILE'" "'TMPDIR''NRFILE'" "'EXPORTDIR''COPYFILE'" "'EXPORTDIR''COPYNR'"
  222. _extern/q 'UNPACKER'
  223. _fastnet getfile'GETOPT' "'TMPDIR''MSGFILE'"
  224.  
  225. ;
  226. ;    Ende
  227. ;
  228. END:
  229. END_FAIL:
  230. _if TMPDIR != "" then _extern/q delete "'TMPDIR'#?" ; Disk aufraeumen
  231. _logout/f                    ; Ausloggen
  232.